#!/usr/bin/env python3
"""
swissknife启动器
拖拽SoulLS脚本文件到本脚本上以快速运行
"""

import sys
import os
import base64
import zlib
from pathlib import Path

def encode_file(file_path):
    """
    读取文件内容，进行deflate压缩，然后base64编码
    """
    try:
        with open(file_path, 'rb') as file:
            file_content = file.read()

        # 使用deflate压缩
        compressed_data = zlib.compress(file_content, wbits=-9)

        # 进行base64编码
        encoded_data = base64.b64encode(compressed_data).decode('utf-8')

        return encoded_data

    except Exception as e:
        print(f"文件编码错误: {e}")
        return None

def main():
    # 检查是否通过拖拽方式传递了文件
    if len(sys.argv) < 2:
        print("请将文件拖拽到此脚本上")
        print("按回车键退出...")
        input()
        return

    file_path = sys.argv[1]

    # 检查文件是否存在
    if not os.path.exists(file_path):
        print(f"文件不存在: {file_path}")
        print("按回车键退出...")
        input()
        return

    # 检查是否是文件（不是目录）
    if not os.path.isfile(file_path):
        print(f"路径不是文件: {file_path}")
        print("按回车键退出...")
        input()
        return

    print(f"正在处理文件: {file_path}")

    # 编码文件内容
    encoded_content = encode_file(file_path)

    if encoded_content is None:
        print("文件编码失败")
        print("按回车键退出...")
        input()
        return

    # 构建完整的URL
    base_url = "https://vudrux.site/sandbox/swissknife.html#"
    full_url = base_url + encoded_content

    print("正在打开浏览器...")

    try:
        # 使用默认浏览器打开URL
        os.startfile(full_url)
    except Exception as e:
        print(f"打开浏览器失败: {e}")
        print("按回车键退出...")
        input()

if __name__ == "__main__":
    main()
